package com.github.sd4324530.fastweixin.api.extra;

import com.github.sd4324530.fastweixin.api.config.ApiConfig;

import java.util.Collection;

/**
 * token cache
 */
public interface TokenCache {

    /**
     * 设置缓存
     * @param token 生成的token
     */
    void put(Token token);

    /**
     * 获取缓存
     * @param appid appid
     * @param type 类型
     *
     * @return token
     */
    Token get(String appid,TokenType type);

    /**
     * 获取所有缓存的token
     *
     * @return all token not null
     */
    Collection<Token> getAll();

    /**
     * 添加 api config
     * @param config config
     */
    void addConfig(ApiConfig config);

    /**
     * 获取的api设置
     * @return api设置
     */
    Collection<ApiConfig> getAllApi();
}
